﻿using FarseerGames.FarseerPhysics.Collisions;
using FarseerGames.FarseerPhysics.Dynamics;
using FarseerGames.FarseerPhysics.Mathematics;
using FreeGoo.GameEngine.Renderables.Links;

namespace FreeGoo.GameEngine.Renderables
{
    public interface ILinkable
    {
        Geom Geom { get; }
        Body Body { get; }
        Vector2 Position { get; }
        Vector2 BodyLinkAnchor { get; }
        float LastTestDistance { get; set; }
        float Radius { get; set; }

        bool IsLinked { get; }
        bool IsLinkedTo(ILinkable linkable);
        bool AllowsLinkFrom(ILinkable linkable);
        void AddLink(Link link);
        void RemoveLink(Link link);
        bool ContainsLink(Link link);
        void ClearLinks();
    }
}
